import clsx from "clsx"; import Link from "next/link"; import { useContext } from "react"; import { useRouter } from "next/router"; import { GetServerSideProps } from "next"; import { get } from "libs/http"; import useGet from "libs/hooks/useGet"; import { Context } from "libs/context"; import NovelItem from "components/NovelItem"; import styles from "styles/genre.module.scss"; const Genre = () => { const { query } = useRouter(); const { data } = useGet( query.genre ? `/api/genre/${query.genre}` : "/api/list" ); const store = useContext(Context); return (

Genres

All {store.genre.map((item) => ( {item.name} ))}

List

); }; export const getServerSideProps: GetServerSideProps< { fallback: { [key: string]: any } }, { genre: string } > = async ({ params }) => { const key = params?.genre ? `/api/genre/${params.genre}` : `/api/list`; const data = await get(key); return { props: { fallback: { [key]: data, }, }, }; }; export default Genre;